package com.zc.custom.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 用户订单对象 charge_custom_order_info
 *
 * @author glb
 * @date 2023-05-19
 */
public class ChargeCustomOrderInfo extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 订单ID
     */
    private Long orderInfoId;

    /**
     * 订单号
     */
    @Excel(name = "订单号")
    private String orderInfoCode;

    /**
     * 客户名称
     */
    @Excel(name = "客户名称")
    private String customName;

    /**
     * 客户手机号
     */
    @Excel(name = "客户手机号")
    private String customPhone;

    /**
     * 场站名称
     */
    @Excel(name = "场站名称")
    private String chargeStationName;

    /**
     * 充电桩名称
     */
    @Excel(name = "充电桩名称")
    private String deviceName;

    /**
     * 枪号
     */
    @Excel(name = "充电枪名称", dictType = "gun_pos_type")
    private int gunPos;

    /**
     * 充电时长（秒）
     */
    //@Excel(name = "充电时长（秒）")
    private Long totalTime;

    @Excel(name = "充电时长（h）")
    private String hourTime;

    /**
     * 累计用电量
     */
    @Excel(name = "累计用电量")
    private BigDecimal totalPower;

    /**
     * 订单金额
     */
    @Excel(name = "订单金额（元）")
    private BigDecimal totalMoney;

    /**
     * 已充金额
     */
    @Excel(name = "已充金额（元）")
    private BigDecimal chargeMoney;

    /**
     * 开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    /**
     * 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /**
     * 订单状态
     */
    @Excel(name = "订单状态", dictType = "order_status")
    private String orderStatus;


    /**
     * 总电费
     */
    //@Excel(name = "总电费")
    private BigDecimal totalElecMoney;

    /**
     * 预下单订单号
     */
    private String preOrderCode;

    /**
     * 类型编号
     */
    //@Excel(name = "类型编号")
    private String priceTypeCode;

    /**
     * 类型名称
     */
    @Excel(name = "类型名称")
    private String priceTypeName;

    private String priceTypeId;

    /**
     * 微信支付订单号
     */
    private String transactionId;

    /**
     * 微信退款商户订单号
     */
    private String outRefundNo;

    /**
     * 微信退款订单号
     */
    private String refundId;

    /**
     * 运营商编号
     */
    //@Excel(name = "运营商编号")
    private String operatorCode;

    /**
     * 运营商名称
     */
    //@Excel(name = "运营商名称")
    private String operatorName;

    /**
     * 支付状态
     */
    //@Excel(name = "支付状态", dictType = "order_info_status")
    private String orderInfoStatus;


    /**
     * 场站编号
     */
    //@Excel(name = "场站编号")
    private String chargeStationCode;


    /**
     * 设备编号
     */
    //@Excel(name = "设备编号")
    private String deviceCode;


    /**
     * 客户编号
     */
    //@Excel(name = "客户编号")
    private String customCode;


    /**
     * 支付金额
     */
    //@Excel(name = "支付金额")
    private BigDecimal paymentAmount;

    /**
     * 退款金额
     */
    //@Excel(name = "退款金额")
    private BigDecimal refundAmount;

    /**
     * 支付方式
     */
    //@Excel(name = "支付方式",dictType ="payment_method")
    private String paymentMethod;

    /**
     * 总服务费
     */
    //@Excel(name = "总服务费")
    private BigDecimal totalSeviceMoney;

    /**
     * 结束方式
     */
    //@Excel(name = "结束方式")
    private String stopReason;

    /**
     * 设备端口ID
     */
    private String portId;

    /**
     * 设备端口
     */
    private String portName;

    /**
     * 付款时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    //@Excel(name = "付款时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;

    /**
     * 退款时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    //@Excel(name = "退款时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date refundTime;
    /**
     * 充电模式
     */
    private int chargeModel;

    /**
     * 充电模式策略值
     */
    private String chargeQuantity;

    /**
     * EV车开始SOC
     */
    private String startSoc;

    /**
     * EV车结束SOC
     */
    private String endSoc;

    /**
     * 阶梯电能数量
     */
    private String elecNums;

    /**
     * 汽车VIN
     */
    private String carVin;

    /**
     * 商户号
     */
    private String mchId;

    private String chargeInfo;

    //输出电压
    private List<String> outVList;

    //需要电压
    private List<String> needVList;

    //输出电流
    private List<String> outIList;

    //需要电流
    private List<String> needIList;

    //电量
    private List<String> powerList;

    //soc
    private List<String> socList;

    //time
    private List<String> timeList;

    //互联互通-充电订单号
    private String startChargeSeq;


    public void setOrderInfoId(Long orderInfoId) {
        this.orderInfoId = orderInfoId;
    }

    public Long getOrderInfoId() {
        return orderInfoId;
    }

    public void setOrderInfoCode(String orderInfoCode) {
        this.orderInfoCode = orderInfoCode;
    }

    public String getOrderInfoCode() {
        return orderInfoCode;
    }

    public void setOrderInfoStatus(String orderInfoStatus) {
        this.orderInfoStatus = orderInfoStatus;
    }

    public String getOrderInfoStatus() {
        return orderInfoStatus;
    }

    public String getChargeStationCode() {
        return chargeStationCode;
    }

    public void setChargeStationCode(String chargeStationCode) {
        this.chargeStationCode = chargeStationCode;
    }

    public String getOperatorName() {
        return operatorName;
    }

    public void setOperatorName(String operatorName) {
        this.operatorName = operatorName;
    }

    public String getChargeStationName() {
        return chargeStationName;
    }

    public void setChargeStationName(String chargeStationName) {
        this.chargeStationName = chargeStationName;
    }

    public void setDeviceCode(String deviceCode) {
        this.deviceCode = deviceCode;
    }

    public String getDeviceCode() {
        return deviceCode;
    }

    public String getDeviceName() {
        return deviceName;
    }

    public void setDeviceName(String deviceName) {
        this.deviceName = deviceName;
    }

    public void setCustomCode(String customCode) {
        this.customCode = customCode;
    }

    public String getCustomCode() {
        return customCode;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setTotalPower(BigDecimal totalPower) {
        this.totalPower = totalPower;
    }

    public BigDecimal getTotalPower() {
        return totalPower;
    }

    public void setPaymentAmount(BigDecimal paymentAmount) {
        this.paymentAmount = paymentAmount;
    }

    public BigDecimal getPaymentAmount() {
        return paymentAmount;
    }

    public void setRefundAmount(BigDecimal refundAmount) {
        this.refundAmount = refundAmount;
    }

    public BigDecimal getRefundAmount() {
        return refundAmount;
    }

    public void setPaymentMethod(String paymentMethod) {
        this.paymentMethod = paymentMethod;
    }

    public String getPaymentMethod() {
        return paymentMethod;
    }

    public void setTotalElecMoney(BigDecimal totalElecMoney) {
        this.totalElecMoney = totalElecMoney;
    }

    public BigDecimal getTotalElecMoney() {
        return totalElecMoney;
    }

    public void setTotalSeviceMoney(BigDecimal totalSeviceMoney) {
        this.totalSeviceMoney = totalSeviceMoney;
    }

    public BigDecimal getTotalSeviceMoney() {
        return totalSeviceMoney;
    }

    public void setTotalMoney(BigDecimal totalMoney) {
        this.totalMoney = totalMoney;
    }

    public BigDecimal getTotalMoney() {
        return totalMoney;
    }

    public BigDecimal getChargeMoney() {
        return chargeMoney;
    }

    public void setChargeMoney(BigDecimal chargeMoney) {
        this.chargeMoney = chargeMoney;
    }

    public void setStopReason(String stopReason) {
        this.stopReason = stopReason;
    }

    public String getStopReason() {
        return stopReason;
    }

    public String getCustomName() {
        return customName;
    }

    public void setCustomName(String customName) {
        this.customName = customName;
    }

    public String getOperatorCode() {
        return operatorCode;
    }

    public void setOperatorCode(String operatorCode) {
        this.operatorCode = operatorCode;
    }

    public String getPreOrderCode() {
        return preOrderCode;
    }

    public void setPreOrderCode(String preOrderCode) {
        this.preOrderCode = preOrderCode;
    }

    public String getTransactionId() {
        return transactionId;
    }

    public void setTransactionId(String transactionId) {
        this.transactionId = transactionId;
    }

    public String getOutRefundNo() {
        return outRefundNo;
    }

    public void setOutRefundNo(String outRefundNo) {
        this.outRefundNo = outRefundNo;
    }

    public String getRefundId() {
        return refundId;
    }

    public void setRefundId(String refundId) {
        this.refundId = refundId;
    }

    public String getPortId() {
        return portId;
    }

    public void setPortId(String portId) {
        this.portId = portId;
    }

    public String getPortName() {
        return portName;
    }

    public void setPortName(String portName) {
        this.portName = portName;
    }

    public Date getPayTime() {
        return payTime;
    }

    public void setPayTime(Date payTime) {
        this.payTime = payTime;
    }

    public Date getRefundTime() {
        return refundTime;
    }

    public void setRefundTime(Date refundTime) {
        this.refundTime = refundTime;
    }

    public int getGunPos() {
        return gunPos;
    }

    public void setGunPos(int gunPos) {
        this.gunPos = gunPos;
    }

    public int getChargeModel() {
        return chargeModel;
    }

    public void setChargeModel(int chargeModel) {
        this.chargeModel = chargeModel;
    }

    public String getChargeQuantity() {
        return chargeQuantity;
    }

    public void setChargeQuantity(String chargeQuantity) {
        this.chargeQuantity = chargeQuantity;
    }

    public Long getTotalTime() {
        return totalTime;
    }

    public void setTotalTime(Long totalTime) {
        this.totalTime = totalTime;
    }

    public String getStartSoc() {
        return startSoc;
    }

    public void setStartSoc(String startSoc) {
        this.startSoc = startSoc;
    }

    public String getEndSoc() {
        return endSoc;
    }

    public void setEndSoc(String endSoc) {
        this.endSoc = endSoc;
    }

    public String getElecNums() {
        return elecNums;
    }

    public void setElecNums(String elecNums) {
        this.elecNums = elecNums;
    }

    public String getCarVin() {
        return carVin;
    }

    public void setCarVin(String carVin) {
        this.carVin = carVin;
    }

    public String getCustomPhone() {
        return customPhone;
    }

    public void setCustomPhone(String customPhone) {
        this.customPhone = customPhone;
    }

    public String getOrderStatus() {
        return orderStatus;
    }

    public void setOrderStatus(String orderStatus) {
        this.orderStatus = orderStatus;
    }

    public String getPriceTypeCode() {
        return priceTypeCode;
    }

    public void setPriceTypeCode(String priceTypeCode) {
        this.priceTypeCode = priceTypeCode;
    }

    public String getPriceTypeName() {
        return priceTypeName;
    }

    public void setPriceTypeName(String priceTypeName) {
        this.priceTypeName = priceTypeName;
    }

    public String getHourTime() {
        return hourTime;
    }

    public void setHourTime(String hourTime) {
        this.hourTime = hourTime;
    }

    public String getMchId() {
        return mchId;
    }

    public void setMchId(String mchId) {
        this.mchId = mchId;
    }

    public String getChargeInfo() {
        return chargeInfo;
    }

    public void setChargeInfo(String chargeInfo) {
        this.chargeInfo = chargeInfo;
    }

    public List<String> getOutVList() {
        return outVList;
    }

    public void setOutVList(List<String> outVList) {
        this.outVList = outVList;
    }

    public List<String> getNeedVList() {
        return needVList;
    }

    public void setNeedVList(List<String> needVList) {
        this.needVList = needVList;
    }

    public List<String> getOutIList() {
        return outIList;
    }

    public void setOutIList(List<String> outIList) {
        this.outIList = outIList;
    }

    public List<String> getNeedIList() {
        return needIList;
    }

    public void setNeedIList(List<String> needIList) {
        this.needIList = needIList;
    }

    public List<String> getPowerList() {
        return powerList;
    }

    public void setPowerList(List<String> powerList) {
        this.powerList = powerList;
    }

    public List<String> getSocList() {
        return socList;
    }

    public void setSocList(List<String> socList) {
        this.socList = socList;
    }

    public List<String> getTimeList() {
        return timeList;
    }

    public void setTimeList(List<String> timeList) {
        this.timeList = timeList;
    }

    public String getPriceTypeId() {
        return priceTypeId;
    }

    public void setPriceTypeId(String priceTypeId) {
        this.priceTypeId = priceTypeId;
    }

    public String getStartChargeSeq() {
        return startChargeSeq;
    }

    public void setStartChargeSeq(String startChargeSeq) {
        this.startChargeSeq = startChargeSeq;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this)
                .append("orderInfoId", orderInfoId)
                .append("orderInfoCode", orderInfoCode)
                .append("preOrderCode", preOrderCode)
                .append("transactionId", transactionId)
                .append("outRefundNo", outRefundNo)
                .append("refundId", refundId)
                .append("operatorCode", operatorCode)
                .append("orderStatus", orderStatus)
                .append("orderInfoStatus", orderInfoStatus)
                .append("chargeStationCode", chargeStationCode)
                .append("deviceCode", deviceCode)
                .append("customCode", customCode)
                .append("priceTypeCode", priceTypeCode)
                .append("customPhone", customPhone)
                .append("customName", customName)
                .append("startTime", startTime)
                .append("endTime", endTime)
                .append("totalPower", totalPower)
                .append("paymentAmount", paymentAmount)
                .append("refundAmount", refundAmount)
                .append("paymentMethod", paymentMethod)
                .append("totalElecMoney", totalElecMoney)
                .append("totalSeviceMoney", totalSeviceMoney)
                .append("totalMoney", totalMoney)
                .append("stopReason", stopReason)
                .append("portId", portId)
                .append("payTime", payTime)
                .append("refundTime", refundTime)
                .append("gunPos", gunPos)
                .append("chargeModel", chargeModel)
                .append("chargeQuantity", chargeQuantity)
                .append("totalTime", totalTime)
                .append("startSoc", startSoc)
                .append("endSoc", endSoc)
                .append("elecNums", elecNums)
                .append("carVin", carVin)
                .toString();
    }
}
